home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1998 November / Freeware November 1998.img / dist / fw_bind.idb / usr / freeware / bin / ndc.z / ndc
Text File  |  1998-05-26  |  2KB  |  84 lines

  1. #!/bin/sh
  2.  
  3. USAGE='echo \
  4.     "usage: $0 \
  5.  (status|dumpdb|reload|stats|trace|notrace|querylog|start|stop|restart) \
  6.      ... \
  7.     "; exit 1'
  8.  
  9. PATH=/bin:/usr/bin:/usr/ucb:$PATH; export PATH
  10. PIDFILE=/etc/named.pid
  11.  
  12. if [ -f $PIDFILE ]
  13. then
  14.     PID=`cat $PIDFILE`
  15.     PS=`ps -p $PID | tail -1 | grep $PID`
  16.     RUNNING=1
  17.     [ `echo $PS | wc -w` -ne 0 ] || {
  18.         PS="named (pid $PID?) not running"
  19.         RUNNING=0
  20.     }
  21. else
  22.     PS="named (no pid file) not running"
  23.     RUNNING=0
  24. fi
  25.  
  26. for ARG
  27. do
  28.     case $ARG in
  29.     start|stop|restart)
  30.         ;;
  31.     *)
  32.         [ $RUNNING -eq 0 ] && {
  33.             echo $PS
  34.             exit 1
  35.         }
  36.     esac
  37.  
  38.     case $ARG in
  39.     status)    echo "$PS";;
  40.     dumpdb)    kill -INT $PID && echo Dumping Database;;
  41.     reload)    kill -HUP $PID && echo Reloading Database;;
  42.     stats)    kill -ILL $PID && echo Dumping Statistics;;
  43.     trace)    kill -USR1 $PID && echo Trace Level Incremented;;
  44.     notrace) kill -USR2 $PID && echo Tracing Cleared;;
  45.     querylog|qrylog) kill -WINCH $PID && echo Query Logging Toggled;;
  46.     start)
  47.         [ $RUNNING -eq 1 ] && {
  48.             echo "$0: start: named (pid $PID) already running"
  49.             continue
  50.         }
  51.         rm -f $PIDFILE
  52.         /usr/sbin/named && {
  53.             sleep 5
  54.             echo Name Server Started
  55.         }
  56.         ;;
  57.     stop)
  58.         [ $RUNNING -eq 0 ] && {
  59.             echo "$0: stop: named not running"
  60.             continue
  61.         }
  62.         kill $PID && {
  63.             sleep 5
  64.             rm -f $PIDFILE
  65.             echo Name Server Stopped
  66.         }
  67.         ;;
  68.     restart)
  69.         [ $RUNNING -eq 1 ] && {
  70.             kill $PID && sleep 5
  71.         }
  72.         rm -f $PIDFILE
  73.         /usr/sbin/named && {
  74.             sleep 5
  75.             echo Name Server Restarted
  76.         }
  77.         ;;
  78.     *)    eval "$USAGE";;
  79.     esac
  80. done
  81. test -z "$ARG" && eval "$USAGE"
  82.  
  83. exit 0
  84.